
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<HTML>

<HEAD>
   <TITLE>wncomd_c</TITLE>
</HEAD>

<BODY style="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);">
<A name="TOP"></A>

<table style="text-align: left; margin-left: auto; margin-right: auto; width: 800px;"
 border="0" cellpadding="5" cellspacing="2">
  <tbody>
    <tr>
      <td style="background-color: rgb(153, 153, 153); vertical-align: middle; text-align: center;">
      <div align="right"> 
      <small><small><a href="index.html">Index Page</a></small></small>
      </div>
      <b>wncomd_c</b> </td>
    </tr>

    <tr>
      <td style="vertical-align: top;">

<small><div align="center">
<A HREF="index.html#A">A</A>&nbsp;
<A HREF="index.html#B">B</A>&nbsp;
<A HREF="index.html#C">C</A>&nbsp;
<A HREF="index.html#D">D</A>&nbsp;
<A HREF="index.html#E">E</A>&nbsp;
<A HREF="index.html#F">F</A>&nbsp;
<A HREF="index.html#G">G</A>&nbsp;
<A HREF="index.html#H">H</A>&nbsp;
<A HREF="index.html#I">I</A>&nbsp;
<A HREF="index.html#J">J</A>&nbsp;
<A HREF="index.html#K">K</A>&nbsp;
<A HREF="index.html#L">L</A>&nbsp;
<A HREF="index.html#M">M</A>&nbsp;
<A HREF="index.html#N">N</A>&nbsp;
<A HREF="index.html#O">O</A>&nbsp;
<A HREF="index.html#P">P</A>&nbsp;
<A HREF="index.html#Q">Q</A>&nbsp;
<A HREF="index.html#R">R</A>&nbsp;
<A HREF="index.html#S">S</A>&nbsp;
<A HREF="index.html#T">T</A>&nbsp;
<A HREF="index.html#U">U</A>&nbsp;
<A HREF="index.html#V">V</A>&nbsp;
<A HREF="index.html#W">W</A>&nbsp;
<A HREF="index.html#X">X</A>&nbsp;
</div></small>
       <br>
       <table style="text-align: left; width: 60%; margin-left: auto; margin-right: auto;"
       border="0" cellspacing="2" cellpadding="2">
        <tbody>
          <tr>
            <td style="width: 50%; text-align: center;">
            <small>
              <a href="#Procedure">Procedure<br></a>
              <a href="#Abstract">Abstract<br></a>
              <a href="#Required_Reading">Required_Reading<br></a>
              <a href="#Keywords">Keywords<br></a>
              <a href="#Brief_I/O">Brief_I/O<br></a>
              <a href="#Detailed_Input">Detailed_Input<br></a>

              </small>
              </td>
              <td style="vertical-align: top; width: 50%; text-align: center;">
              <small>               <a href="#Detailed_Output">Detailed_Output<br></a>
              <a href="#Parameters">Parameters<br></a>
              <a href="#Exceptions">Exceptions<br></a>
              <a href="#Files">Files<br></a>
              <a href="#Particulars">Particulars<br></a>
              <a href="#Examples">Examples<br></a>

              </small>
              </td>
              <td style="vertical-align: top; width: 50%; text-align: center;">
              <small>               <a href="#Restrictions">Restrictions<br></a>
              <a href="#Literature_References">Literature_References<br></a>
              <a href="#Author_and_Institution">Author_and_Institution<br></a>
              <a href="#Version">Version<br></a>
              <a href="#Index_Entries">Index_Entries<br></a>
             </small>
            </td>
          </tr>
        </tbody>
</table>

<h4><a name="Procedure">Procedure</a></h4>
<PRE>
   void wncomd_c ( SpiceDouble    left,
                   SpiceDouble    right,
                   SpiceCell    * window,
                   SpiceCell    * result ) 

</PRE>
<h4><a name="Abstract">Abstract</a></h4>
<PRE>
 
   Determine the complement of a double precision window with 
   respect to a specified interval. 
 </PRE>
<h4><a name="Required_Reading">Required_Reading</a></h4>
<PRE>
 
   <a href="../req/windows.html">WINDOWS</a> 
 </PRE>
<h4><a name="Keywords">Keywords</a></h4>
<PRE>
 
   WINDOWS 
 

</PRE>
<h4><a name="Brief_I/O">Brief_I/O</a></h4>
<PRE>
 
   VARIABLE  I/O  DESCRIPTION 
   --------  ---  -------------------------------------------------- 
   left, 
   right      I   Left, right endpoints of complement interval. 
   window     I   Input window. 
   result     O   Complement of window with respect to [left,right]. 
 </PRE>
<h4><a name="Detailed_Input">Detailed_Input</a></h4>
<PRE>
 
   left, 
   right       are the left and right endpoints of the complement 
               interval. 

   window      is the window to be complemented.  window must be
               declared as a double precision SpiceCell.
 </PRE>
<h4><a name="Detailed_Output">Detailed_Output</a></h4>
<PRE>
 
   result      is the output window, containing the complement 
               of window with respect to the interval from left 
               to right. If the output window is not large enough 
               to contain the result, as many intervals as will 
               fit are returned. 

               result must be declared as a double precision SpiceCell.

               result must be distinct from window. 
 </PRE>
<h4><a name="Parameters">Parameters</a></h4>
<PRE>
 
   None. 
 </PRE>
<h4><a name="Exceptions">Exceptions</a></h4>
<PRE>
 
   1) If either input window does not have double precision type,
      the error SPICE(TYPEMISMATCH) is signaled.

   2) If left is greater than right, the error SPICE(BADENDPOINTS) is 
      signaled. 
 </PRE>
<h4><a name="Files">Files</a></h4>
<PRE>
 
   None. 
 </PRE>
<h4><a name="Particulars">Particulars</a></h4>
<PRE>
 
   Mathematically, the complement of a window contains those 
   points that are not contained in the window. That is, the 
   complement of the set of closed intervals 

      [ a(0), b(0) ], [ a(1), b(1) ], ..., [ a(n), b(n) ] 

   is the set of open intervals 

      ( -inf, a(0) ), ( b(0), a(1) ), ..., ( b(n), +inf ) 

   Because ANSI C offers no satisfactory representation of 
   infinity, we must take the complement with respect to a 
   finite interval. 

   In addition, ANSI C offers no satisfactory floating point 
   representation of open intervals. Therefore, the complement 
   of a floating point window is closure of the set theoretical 
   complement. In short, the floating point complement of the 
   window 

      [ a(0), b(0) ], [ a(1), b(1) ], ..., [ a(n), b(n) ] 

   with respect to the interval from left to right is the 
   intersection of the windows 

      ( -inf, a(0) ), ( b(0), a(1) ), ..., ( b(n), +inf ) 
 
   and 
 
      [ left, right ] 
 
   Note that floating point intervals of measure zero (singleton 
   intervals) in the original window are replaced by gaps of 
   measure zero, which are filled. Thus, complementing a floating 
   point window twice does not necessarily yield the original window. 
 </PRE>
<h4><a name="Examples">Examples</a></h4>
<PRE>
 
   Let window contain the intervals 
 
     [ 1, 3 ]  [ 7, 11 ]  [ 23, 27 ] 
 
   Then the floating point complement of window with respect 
   to [2,20] contains the intervals 
 
      [ 3, 7 ]  [ 11, 20 ] 
 
   and the complement with respect to [ 0, 100 ] contains 
 
      [ 0, 1 ]  [ 3, 7 ]  [ 11, 23 ]  [ 27, 100 ] 
</PRE>
<h4><a name="Restrictions">Restrictions</a></h4>
<PRE>
 
   None. 
 </PRE>
<h4><a name="Literature_References">Literature_References</a></h4>
<PRE>
 
   None. 
 </PRE>
<h4><a name="Author_and_Institution">Author_and_Institution</a></h4>
<PRE>
 
   N.J. Bachman    (JPL) 
   H.A. Neilan     (JPL) 
   W.L. Taber      (JPL) 
   I.M. Underwood  (JPL) 
 </PRE>
<h4><a name="Version">Version</a></h4>
<PRE>
 
   -CSPICE Version 1.0.0, 27-AUG-2002 (NJB) (HAN) (WLT) (IMU)
</PRE>
<h4><a name="Index_Entries">Index_Entries</a></h4>
<PRE>
 
   complement a d.p. window 
 </PRE>
<h4>Link to routine wncomd_c source file <a href='../../../src/cspice/wncomd_c.c'>wncomd_c.c</a> </h4>

      </td>
    </tr>
  </tbody>
</table>

   <pre>Wed Jun  9 13:05:33 2010</pre>

</body>
</html>

